package com.wudl.core.base;

/**
 * @author ：wudl
 * @date ：Created in 2022-03-26 23:28
 * @description：枚举类型基类
 * @modified By：
 * @version: 1.0
 */

import com.wudl.core.utils.MapHelper;

import java.util.Arrays;
import java.util.Map;

public interface BaseEnum {
    /**
     * 将制定的枚举集合转成 map
     * key -> name
     * value -> desc
     *
     * @param list
     * @return
     */
    static Map<String, String> getMap(BaseEnum[] list) {
        return MapHelper.uniqueIndex(Arrays.asList(list), BaseEnum::getCode, BaseEnum::getDesc);
    }


    /**
     * 编码重写
     *
     * @return
     */
    default String getCode() {
        return toString();
    }

    /**
     * 描述
     *
     * @return
     */
    String getDesc();
}